Перевантаження функцій і операторів, спадкування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерні системи

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет “Львівська політехніка” Кафедра САП  Звіт до лабораторної роботи № 9 Перевантаження функцій і операторів, спадкування з курсу “Проблемно-орієнтоване програмування” для студентів спеціальності "Комп’ютерні системи проектування" Львів 2013 1. МЕТА РОБОТИ Мета роботи - ознайомитися з можливостями перевантаження функцій та використання принципів спадкування в об’єктно-орiєнтованій мові програмування С++. 2. ТЕОРЕТИЧНІ ВІДОМОСТІ 2. 1. Перевантаження функцій Перевантаження функцій є одним із різновидів поліморфізму. У мові C++ допускається використання функцій з однаковими іменами, але різними оголошеннями параметрів. У таких випадках говорять, що функції перевантажені, а сам процес називається перевантаженням функцій. Як правило, щоб перевантажити якусь функцію, досить визначити три її різні версії, а компілятор сам подбає про іншому. Однак варто пам'ятати про одне важливе обмеження: тип і/або кількість параметрів кожної перевантаженої функції повинні бути різними. Не можна перевантажити функції, які відрізняються лише типом значення, що повертається. Цього зовсім недостатньо, оскільки необхідно, щоб типи й/або кількість параметрів у кожній версії відрізнялися друг від друга. (Інформації про тип значення, що повертається, недостатньо для того, щоб компілятор правильно розпізнав потрібний варіант перевантаженої функції.) Зрозуміло, це не означає, що функції, які перевантажуються, повинні мати однаковий тип значення, яке повертається. 2.2. Перевантаження операторів Поліморфізм у мові C++ проявляється також у вигляді перевантаження операторів. Як відомо, для вводу й виводу в мові C++ застосовуються оператори ">>" і "<<". Це стало можливим завдяки тому, що в заголовному файлі <iostream> ці оператори перевантажені. Перевантажені оператори мають різний сенс для різних класів, зберігаючи при цьому своє первісне значення. У мові C++ можна перевантажити майже всі оператори. Повернемося, наприклад, до класу stack, розглянутому нами вище. У цьому класі можна перевантажити оператор "+", змусивши його складати два об'єкти класу stack. При цьому оператор "+" зберігає свій первинний зміст. 2.3. Спадкування Як вказувалося раніше, спадкування є однієї з основних характерних рис об’єктно-орієнтованого програмування. У мові C++ спадкування виражається тім, що один клас може здобувати властивості іншого класу в момент свого оголошення. Спадкування дозволяє створювати ієрархії класів, уточнюючи їхньої властивості від самих загальних до більше конкретних. Процес спадкування починається з визначення базового класу (base class), властивості якого будуть загальними для всіх його спадкоємців. Базовий клac являє собою опис найбільш загального характеру. Спадкоємці базового клacу називаються похідними класами (derived classes). Похідний клас має всі властивості базового класу й своїх специфічних особливостей. Продемонструємо цей механізм на прикладі, у якому описуються різні типи будинків. У загальному випадку похідний клас оголошується в такий спосіб. class похідний_клас : специфікатор_доступу базовий_клас { // тіло нового класу } Тут специфікатор_доступу вказувати необов'язково. Цей параметр може приймати три значення: public, private або protected. Похідний клас має прямий доступ як до своїх членів, так і до відкритих членів базового класу. Як бачимо, основна перевага механізму спадкування полягає в тім, що можна спочатку створити загальну класифікацію, а потім на її основі розробити уточнюючі класи. Таким чином, кожний об'єкт може точно представляти свій власний підклас. У книгах про мову C++ відношення спадкування часто описують за допомогою термінів базовий клас і похідний клас. Однак поряд з ними часто згадуються терміни предок і спадкоємець. Крім того, можна зустріти поняття суперклас і підклас. Крім можливості створювати ієрархічну класифікацію, спадкування забезпечує підтримку динамічного поліморфізму за допомогою механізму віртуальних функцій. 2.4. Конструктори й де...
Антиботан аватар за замовчуванням

29.09.2014 20:09

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини